package fiuba.algo3.vista;

import java.awt.*;
import java.awt.event.*;
import java.io.IOException;

import javax.swing.*;

import fiuba.algo3.usuario.NombreYaUsadoException;
import fiuba.algo3.usuario.Usuario;
import fiuba.algo3.usuario.UsuariosExistentes;

@SuppressWarnings("serial")
public class NuevoUsuario  extends JInternalFrame implements ActionListener{
	
	private JFPrincipal principal;
	private JButton guardar;
	private int maxWidth;
	private int maxHeight;
	private JTextField cuadroDeTExto;

	
	public NuevoUsuario(int margenIzquierdo,int margenSuperior,int maxWidth,int maxHeight,JFPrincipal principal){
		
		this.principal = principal;
		this.maxWidth = maxWidth;
		this.maxHeight = maxHeight;
		
		setLayout(null);
		
		//colorearlo
		setBackground(new Color(153,153,204));

		
		//elimar bordes y northPane
		this.setBorder(null);
		javax.swing.plaf.InternalFrameUI ifu= this.getUI();
		((javax.swing.plaf.basic.BasicInternalFrameUI)ifu).setNorthPane(null);

		//crear boton
		guardar = new JButton ("Guardar");
		guardar.setBounds((maxWidth-200)/2,(maxHeight-140)/2,200,40);
		guardar.addActionListener(this);
		this.add(guardar);

		//crear cuadro de texto
		cuadroDeTExto = new JTextField("Ingrese su nombre",20);
		cuadroDeTExto.setEditable(true);
		cuadroDeTExto.setBounds((maxWidth-200)/2,(maxHeight)/2,200,40);
		cuadroDeTExto.addActionListener(this);
		this.add(cuadroDeTExto);

		this.setBounds(margenIzquierdo,margenSuperior,maxWidth,maxHeight);
		this.setVisible(true);
		this.setResizable(false);
		this.setMaximizable(false);

	}

	
	@Override
	public void actionPerformed(ActionEvent e){
	    if (e.getSource()== guardar) {
	    	this.setVisible(false);
	    	String nombreDeUsuario = cuadroDeTExto.getText();
	    	try{
	    		Usuario usuario = new UsuariosExistentes().nuevoUsuario(nombreDeUsuario);
	    		principal.seleccionarDificultadYVehiculo(maxWidth,maxHeight,usuario);
	    	}catch(NombreYaUsadoException excepcion){
	    		new WCartelDeAlerta("NOMBRE YA USADO",principal);
	    		principal.bienvenida();
	    	}catch(IOException ioe){
	    		System.out.println("usuarios.xml inexistente");
	    		ioe.printStackTrace();
	    	}
        }
	    if (e.getSource() == cuadroDeTExto) {
	    	this.setVisible(false);
	    	String nombreDeUsuario = e.getActionCommand();
	    	try{
	    		Usuario usuario = new UsuariosExistentes().nuevoUsuario(nombreDeUsuario);
	    		principal.seleccionarDificultadYVehiculo(maxWidth,maxHeight,usuario);
	    	}catch(NombreYaUsadoException excepcion){
	    		new WCartelDeAlerta("NOMBRE YA USADO",principal);
	    		principal.bienvenida();
	    	}catch(IOException ioe){
	    		// No deberia poder suceder nunca
	    		System.out.println("usuarios.xml inexistente");
	    	}
		}
	}
}

